Various graphical user interfaces have been developed to provide an interactive framework for computer users. Computer programs typically provide a graphical user interface (GUI) to facilitate data entry, to enable viewing output on a display screen, as well as to manipulate or rearrange data. A graphical user interface can be associated with an application program or operating system shell, which may be running on a user's local machine and/or remotely, such as in a distributing computing system or over the Internet. In view of continuing technological developments and increasing use of the Internet, people are using computers to access information to an ever-increasing extent. Such information can reside locally on the person's computer or within a local network or be global in scope, such as over the Internet.
Users of window-based graphical user interfaces face many problems when they employ various programs for multiple tasks or activities—they often have a large number of windows to manage, with many windows for each task. Switching between tasks is difficult because the windows often can be scattered across the desktop display. Moreover, if windows are minimized while not in use, they are typically not organized together. If not minimized, a user can be faced with a difficult task of locating all relevant obscured windows and bringing them to a top of a display. Furthermore, content within a window such as application icons, document sheets, presentation slides and so forth continue to clutter the user's workspace which tends to decrease productivity.
When users begin employing large display configurations (e.g., multiple monitors), managing windows and tasks becomes an ever more difficult problem. Managing many display objects on small displays (e.g., PDA's) is also difficult—in such case, oftentimes sufficient screen space is not available to display objects of interest. These type displays and options for driving such displays are also consuming more processor resources—especially when rendering more complex patterns or objects to the display.
In general, contemporary user interface systems can be described in terms of a layout phase and a drawing phase. In the layout phase, the dimensions of each element and sub-element of the user interface are calculated and the elements are then arranged graphically. In the drawing phase, the elements are converted into a visual representation and displayed on the screen. In modern graphical user interface systems—such as those used in the Windows Explorer, the Macintosh Finder, and particularly in web browsers such as Internet Explorer, a large portion of the computational resources user by the interface system are dedicated to layout. In extremely large collections of user interface elements, the cost of layout becomes increasingly high and results in reduced responsiveness of the user interface. Furthermore, with the advent of extremely large storage devices and network-based storages, the need for working effectively with very large collections of items—such as those returned by a web search—is becoming increasingly important. The ability of future interfaces to cope with very long lists in an efficient manner will be an important determinant of success and perceived suitability for future user scenarios.